graph TB
    %% 定义节点
    User[👤 用户端<br/>移动应用/Web]
    Device[🔌 IoT设备<br/>硬件终端]
    
    API[🌐 API Gateway<br/>+ Cognito认证]
    IoT[☁️ IoT Core<br/>MQTT Broker]
    
    %% 分离的Lambda函数
    PairingAPI[⚡ PairingAPI<br/>Lambda<br/>处理用户配对请求]
    PairingAction[⚡ PairingAction<br/>Lambda<br/>执行配对逻辑]
    IoTRule[⚡ IoTRule<br/>Lambda<br/>处理设备消息]
    StatusQuery[⚡ StatusQuery<br/>Lambda<br/>查询配对状态]
    TimeoutHandler[⚡ TimeoutHandler<br/>Lambda<br/>处理超时逻辑]
    
    DDB[🗄️ DynamoDB<br/>• UserDevicePairing表<br/>• Stream触发器]
    
    RDS[🐘 RDS PostgreSQL<br/>• UserDeviceInteractions<br/>• 用户设备关系<br/>• 历史记录]
    
    Scheduler[⏰ EventBridge<br/>Scheduler<br/>超时处理]
    
    IAM[🔐 权限管理<br/>IAM + Cognito<br/>动态策略]
    
    %% 连接关系
    User -.->|REST API| API
    Device -.->|MQTT| IoT
    
    API -->|用户配对请求| PairingAPI
    API -->|状态查询| StatusQuery
    IoT -->|设备消息路由| IoTRule
    
    PairingAPI -->|写入配对记录| DDB
    IoTRule -->|更新配对记录| DDB
    StatusQuery -->|查询配对状态| DDB
    StatusQuery -->|查询设备关系| RDS
    
    DDB -->|Stream触发| PairingAction
    
    PairingAction -->|更新配对状态| DDB
    PairingAction -->|保存用户设备关系| RDS
    PairingAction -->|创建超时调度| Scheduler
    PairingAction -->|分配设备权限| IAM
    
    Scheduler -.->|超时回调| TimeoutHandler
    TimeoutHandler -->|处理超时记录| DDB
    
    PairingAction -.->|推送配对结果| IoT
    TimeoutHandler -.->|推送超时通知| IoT
    
    IoT -.->|通知用户| User
    IoT -.->|通知设备| Device
    
    IAM -.->|授权访问| User
    
    %% 样式
    classDef clientStyle fill:#e3f2fd,stroke:#1976d2,stroke-width:3px,color:#000
    classDef gatewayStyle fill:#e8f5e8,stroke:#388e3c,stroke-width:3px,color:#000
    classDef lambdaStyle fill:#fff3e0,stroke:#f57c00,stroke-width:2px,color:#000
    classDef dataStyle fill:#f3e5f5,stroke:#7b1fa2,stroke-width:3px,color:#000
    classDef rdsStyle fill:#e8eaf6,stroke:#3f51b5,stroke-width:3px,color:#000
    classDef serviceStyle fill:#fce4ec,stroke:#c2185b,stroke-width:3px,color:#000
    
    class User,Device clientStyle
    class API,IoT gatewayStyle
    class PairingAPI,PairingAction,IoTRule,StatusQuery,TimeoutHandler lambdaStyle
    class DDB dataStyle
    class RDS rdsStyle
    class Scheduler,IAM serviceStyle
